Skill

অ্যাপাচি কমন্স কালেকশনস (Apache Common Collection)

Java Technologies
225
225

Apache Commons Collections হলো Apache Software Foundation এর একটি ওপেন সোর্স জাভা লাইব্রেরি, যা Java Collections Framework এর উপর ভিত্তি করে তৈরি করা হয়েছে এবং এটি বিভিন্ন ডেটা স্ট্রাকচার এবং ইউটিলিটি ক্লাস সরবরাহ করে। এটি ডেভেলপারদের জন্য সাধারণ জাভা কালেকশন অপারেশনগুলোকে আরও সহজ এবং কার্যকরভাবে সম্পন্ন করতে সহায়ক করে এবং জাভার ডিফল্ট কালেকশন ফ্রেমওয়ার্কে পাওয়া না যাওয়া কিছু অতিরিক্ত কার্যকারিতা যোগ করে।


Apache Commons Collections: একটি বিস্তারিত বাংলা টিউটোরিয়াল

ভূমিকা

Apache Commons Collections হলো Apache Commons প্রকল্পের একটি অংশ, যা Java Collections Framework এর কার্যকারিতা বাড়াতে অতিরিক্ত ডেটা স্ট্রাকচার, ইউটিলিটি ক্লাস এবং অ্যালগরিদম সরবরাহ করে। এটি মূলত Java Collections API (যেমন List, Set, Map) এর সীমাবদ্ধতা কাটিয়ে উঠতে এবং ডেভেলপারদের জন্য আরও ফ্লেক্সিবল ও পুনরায় ব্যবহারযোগ্য সমাধান দিতে ব্যবহৃত হয়।

Java Collections API ডেভেলপারদের জন্য অনেক সুবিধা প্রদান করলেও কিছু কমন কাজের জন্য আলাদা সমাধান প্রয়োজন হয়। Apache Commons Collections এই কাজগুলোকে আরও সহজ, কার্যকর এবং পারফরম্যান্সবান্ধব করে তোলে।

Apache Commons Collections এর বৈশিষ্ট্য

  1. নতুন ডেটা স্ট্রাকচার: Commons Collections বিভিন্ন প্রকারের ডেটা স্ট্রাকচার সরবরাহ করে, যেমন Bag, BidiMap, MultiMap ইত্যাদি, যা Java Collections API এ নেই।
  2. Utility Classes: বিভিন্ন utility ক্লাস রয়েছে, যা সহজে Collections নিয়ে কাজ করতে সহায়ক, যেমন CollectionUtils, ListUtils, SetUtils
  3. ComparatorChain: একটি শক্তিশালী comparator টুল, যা একাধিক ফিল্ডের উপর ভিত্তি করে তালিকা সাজাতে সহায়ক।
  4. Transformer and Closure: ডেটার উপর বিভিন্ন অপারেশন প্রয়োগ করতে transformer এবং closure ক্লাস সরবরাহ করা হয়েছে।
  5. Enhanced Iterators: Collections এর মধ্যে সহজ এবং কার্যকরভাবে ইটারেশন করার জন্য উন্নত iterator সরবরাহ করে।
  6. Lazy Evaluation: Commons Collections lazy evaluation এবং lazy initialization সমর্থন করে, যা ডেটার উপর অপারেশন প্রয়োগের আগে সময় সাশ্রয় করে।
  7. Extended Map Implementations: Java Collections API এর Map ইন্টারফেসের বিভিন্ন এক্সটেনশান, যেমন MultiMap, BidiMap, LRUMap ইত্যাদি।

Apache Commons Collections এর কাজের ধাপ

ধাপ ১: Maven ডিপেন্ডেন্সি যোগ করা

Apache Commons Collections ব্যবহার করার জন্য আপনাকে Maven প্রজেক্টে ডিপেন্ডেন্সি যোগ করতে হবে। নিচের কোডটি pom.xml ফাইলে যোগ করুন:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

এটি Apache Commons Collections এর সর্বশেষ সংস্করণ commons-collections4 যোগ করবে।

ধাপ ২: Bag ইন্টারফেস ব্যবহার করা

Bag হলো একটি বিশেষ ধরণের Collection, যা একটি উপাদানের সংখ্যা গণনা করে। সাধারণত Set উপাদানগুলোকে শুধুমাত্র একবার স্টোর করে, কিন্তু Bag একাধিকবার একই উপাদান রাখতে পারে এবং তাদের গণনা করতে পারে।

import org.apache.commons.collections4.Bag;
import org.apache.commons.collections4.bag.HashBag;

public class BagExample {
    public static void main(String[] args) {
        Bag<String> bag = new HashBag<>();

        bag.add("Apple", 3);  // 3 বার Apple যোগ করা
        bag.add("Banana");
        bag.add("Orange", 2); // 2 বার Orange যোগ করা

        System.out.println("Apple Count: " + bag.getCount("Apple")); // আউটপুট: 3
        System.out.println("Orange Count: " + bag.getCount("Orange")); // আউটপুট: 2
        System.out.println("Total unique items: " + bag.size()); // আউটপুট: 3

        bag.remove("Apple", 1);  // 1 বার Apple মুছে ফেলা
        System.out.println("Apple Count after removal: " + bag.getCount("Apple")); // আউটপুট: 2
    }
}

ধাপ ৩: BidiMap ব্যবহার করা

BidiMap (Bidirectional Map) হলো এমন একটি Map, যা কেবল key-value জোড়ার উপর ভিত্তি করে কাজ করে না, বরং value এর উপর ভিত্তি করে key ও খুঁজে বের করতে পারে। অর্থাৎ, এটি key এবং value উভয়কেই ইউনিক রাখে।

import org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.bidimap.TreeBidiMap;

public class BidiMapExample {
    public static void main(String[] args) {
        BidiMap<String, String> bidiMap = new TreeBidiMap<>();

        bidiMap.put("1", "Apple");
        bidiMap.put("2", "Banana");
        bidiMap.put("3", "Orange");

        System.out.println("Key for value 'Apple': " + bidiMap.getKey("Apple")); // আউটপুট: 1
        System.out.println("Value for key '2': " + bidiMap.get("2")); // আউটপুট: Banana

        bidiMap.removeValue("Orange");
        System.out.println("Key for value 'Orange' after removal: " + bidiMap.getKey("Orange")); // আউটপুট: null
    }
}

ধাপ ৪: MultiMap ব্যবহার করা

MultiMap হলো একটি বিশেষ ধরনের Map, যেখানে একাধিক value একটি key এর সাথে সংযুক্ত থাকতে পারে।

import org.apache.commons.collections4.MultiValuedMap;
import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;

public class MultiMapExample {
    public static void main(String[] args) {
        MultiValuedMap<String, String> multiMap = new ArrayListValuedHashMap<>();

        multiMap.put("Fruit", "Apple");
        multiMap.put("Fruit", "Banana");
        multiMap.put("Fruit", "Orange");
        multiMap.put("Vegetable", "Carrot");

        System.out.println("Fruits: " + multiMap.get("Fruit")); // আউটপুট: [Apple, Banana, Orange]
        System.out.println("Vegetables: " + multiMap.get("Vegetable")); // আউটপুট: [Carrot]

        // সব values প্রিন্ট করা
        multiMap.entries().forEach(System.out::println);
    }
}

ধাপ ৫: Transformer ব্যবহার করা

Transformer ব্যবহার করে আপনি ডেটার উপর বিভিন্ন রূপান্তর (transformation) প্রয়োগ করতে পারেন। এটি মূলত ডেটার উপর অপারেশন প্রয়োগ করে একটি নতুন ফর্মে রূপান্তরিত করে।

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Transformer;

import java.util.Arrays;
import java.util.List;

public class TransformerExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

        Transformer<Integer, Integer> squareTransformer = input -> input * input;

        List<Integer> squaredNumbers = (List<Integer>) CollectionUtils.collect(numbers, squareTransformer);

        System.out.println("Original numbers: " + numbers);
        System.out.println("Squared numbers: " + squaredNumbers);
    }
}

ধাপ ৬: Closure ব্যবহার করা

Closure হলো একটি অপারেশন, যা একটি ডেটার উপর প্রয়োগ করা হয় কিন্তু কোনো মান রিটার্ন করে না। এটি সাধারণত সাইড-ইফেক্ট তৈরি করার জন্য ব্যবহৃত হয়।

import org.apache.commons.collections4.Closure;
import org.apache.commons.collections4.IterableUtils;

import java.util.Arrays;
import java.util.List;

public class ClosureExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("John", "Jane", "Mark");

        Closure<String> printClosure = System.out::println;

        IterableUtils.forEach(names, printClosure);
    }
}

Apache Commons Collections এর সুবিধা

  1. বাড়তি ডেটা স্ট্রাকচার: এটি Java Collections API এর সীমাবদ্ধতা কাটিয়ে ওঠে এবং নতুন ডেটা স্ট্রাকচার সরবরাহ করে, যা প্রজেক্টের জটিল ডেটা ম্যানেজমেন্ট সহজ করে।
  2. Utility ক্লাস: Collections নিয়ে কাজ করা সহজ করে তুলতে বিভিন্ন utility ক্লাস সরবরাহ করা হয়েছে।
  3. কাস্টমাইজেশন: Commons Collections অনেক বেশি ফ্লেক্সিবল এবং ডেভেলপারদের ডেটার উপর বিভিন্ন রকম অপারেশন এবং ফিল্টারিং করার সুযোগ দেয়।
  4. ডেটা ম্যানিপুলেশন সহজ করা: Transformer, Closure, এবং অন্যান্য কার্যকর টুলসের মাধ্যমে ডেটার উপর অপারেশন করা সহজ হয়।

Apache Commons Collections এর অসুবিধা

  1. নতুন API তে ব্যবহার সীমিত: Java 8 এর Stream API এবং Lambda Expressions আসার পর কিছু কিছু ক্ষেত্রে Commons Collections এর ব্যবহার কমে গেছে।
  2. অতিরিক্ত নির্ভরতা: এটি একটি অতিরিক্ত লাইব্রেরি, তাই প্রজেক্টে এটি যোগ করা কিছুটা ওভারহেড তৈরি করতে পারে।
  3. কমন প্রয়োজনীয়তা: কিছু ফিচার Java 8 এবং এর পরবর্তী সংস্করণে যুক্ত হয়ে যাওয়ায় অনেক ক্ষেত্রেই এটি অপ্রয়োজনীয় হয়ে পড়েছে।

Apache Commons Collections শেখার জন্য রিসোর্স

  1. Apache Commons Collections অফিসিয়াল ডকুমেন্টেশন: https://commons.apache.org/proper/commons-collections/
  2. YouTube টিউটোরিয়াল: YouTube এ "Apache Commons Collections Tutorial" নামে বিভিন্ন ভিডিও পাওয়া যায়।
  3. বই: "Java Generics and Collections" বইটি Apache Commons Collections এবং Java Collections সম্পর্কে শেখার জন্য সহায়ক।

কিওয়ার্ড

  • Bag: একটি ডেটা স্ট্রাকচার, যা একাধিকবার একই উপাদান সংরক্ষণ করতে পারে এবং তাদের সংখ্যা গণনা করে।
  • BidiMap: একটি দ্বিমুখী Map, যা key-value জোড়া এবং value-key উভয়ভাবেই অ্যাক্সেস করা যায়।
  • MultiMap: এমন একটি Map, যেখানে একাধিক value একটি key এর সাথে সংযুক্ত থাকতে পারে।
  • Transformer: একটি ডেটার উপর অপারেশন প্রয়োগ করে সেটিকে নতুন ফর্মে রূপান্তরিত করার ক্লাস।
  • Closure: একটি অপারেশন, যা একটি ডেটার উপর প্রয়োগ করা হয় কিন্তু কোনো মান রিটার্ন করে না।

উপসংহার

Apache Commons Collections হলো একটি শক্তিশালী এবং ফ্লেক্সিবল লাইব্রেরি, যা Java Collections API এর সীমাবদ্ধতা কাটিয়ে উঠে অতিরিক্ত ডেটা স্ট্রাকচার, utility ক্লাস, এবং অ্যালগরিদম প্রদান করে। এটি Bag, BidiMap, MultiMap এবং আরও অনেক নতুন ডেটা স্ট্রাকচার সরবরাহ করে, যা জাভা ডেভেলপারদের ডেটা ম্যানেজমেন্ট এবং প্রসেসিং সহজ করে তোলে। যদিও Java 8 এবং এর পরবর্তী সংস্করণে নতুন ফিচার যোগ হওয়ার কারণে এর ব্যবহার কিছুটা কমে গেছে, তবে এখনও বড় বড় প্রজেক্টে এটি একটি কার্যকর টুল হিসেবে ব্যবহৃত হয়।

Apache Commons Collections হলো Apache Software Foundation এর একটি ওপেন সোর্স জাভা লাইব্রেরি, যা Java Collections Framework এর উপর ভিত্তি করে তৈরি করা হয়েছে এবং এটি বিভিন্ন ডেটা স্ট্রাকচার এবং ইউটিলিটি ক্লাস সরবরাহ করে। এটি ডেভেলপারদের জন্য সাধারণ জাভা কালেকশন অপারেশনগুলোকে আরও সহজ এবং কার্যকরভাবে সম্পন্ন করতে সহায়ক করে এবং জাভার ডিফল্ট কালেকশন ফ্রেমওয়ার্কে পাওয়া না যাওয়া কিছু অতিরিক্ত কার্যকারিতা যোগ করে।


Apache Commons Collections: একটি বিস্তারিত বাংলা টিউটোরিয়াল

ভূমিকা

Apache Commons Collections হলো Apache Commons প্রকল্পের একটি অংশ, যা Java Collections Framework এর কার্যকারিতা বাড়াতে অতিরিক্ত ডেটা স্ট্রাকচার, ইউটিলিটি ক্লাস এবং অ্যালগরিদম সরবরাহ করে। এটি মূলত Java Collections API (যেমন List, Set, Map) এর সীমাবদ্ধতা কাটিয়ে উঠতে এবং ডেভেলপারদের জন্য আরও ফ্লেক্সিবল ও পুনরায় ব্যবহারযোগ্য সমাধান দিতে ব্যবহৃত হয়।

Java Collections API ডেভেলপারদের জন্য অনেক সুবিধা প্রদান করলেও কিছু কমন কাজের জন্য আলাদা সমাধান প্রয়োজন হয়। Apache Commons Collections এই কাজগুলোকে আরও সহজ, কার্যকর এবং পারফরম্যান্সবান্ধব করে তোলে।

Apache Commons Collections এর বৈশিষ্ট্য

  1. নতুন ডেটা স্ট্রাকচার: Commons Collections বিভিন্ন প্রকারের ডেটা স্ট্রাকচার সরবরাহ করে, যেমন Bag, BidiMap, MultiMap ইত্যাদি, যা Java Collections API এ নেই।
  2. Utility Classes: বিভিন্ন utility ক্লাস রয়েছে, যা সহজে Collections নিয়ে কাজ করতে সহায়ক, যেমন CollectionUtils, ListUtils, SetUtils
  3. ComparatorChain: একটি শক্তিশালী comparator টুল, যা একাধিক ফিল্ডের উপর ভিত্তি করে তালিকা সাজাতে সহায়ক।
  4. Transformer and Closure: ডেটার উপর বিভিন্ন অপারেশন প্রয়োগ করতে transformer এবং closure ক্লাস সরবরাহ করা হয়েছে।
  5. Enhanced Iterators: Collections এর মধ্যে সহজ এবং কার্যকরভাবে ইটারেশন করার জন্য উন্নত iterator সরবরাহ করে।
  6. Lazy Evaluation: Commons Collections lazy evaluation এবং lazy initialization সমর্থন করে, যা ডেটার উপর অপারেশন প্রয়োগের আগে সময় সাশ্রয় করে।
  7. Extended Map Implementations: Java Collections API এর Map ইন্টারফেসের বিভিন্ন এক্সটেনশান, যেমন MultiMap, BidiMap, LRUMap ইত্যাদি।

Apache Commons Collections এর কাজের ধাপ

ধাপ ১: Maven ডিপেন্ডেন্সি যোগ করা

Apache Commons Collections ব্যবহার করার জন্য আপনাকে Maven প্রজেক্টে ডিপেন্ডেন্সি যোগ করতে হবে। নিচের কোডটি pom.xml ফাইলে যোগ করুন:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

এটি Apache Commons Collections এর সর্বশেষ সংস্করণ commons-collections4 যোগ করবে।

ধাপ ২: Bag ইন্টারফেস ব্যবহার করা

Bag হলো একটি বিশেষ ধরণের Collection, যা একটি উপাদানের সংখ্যা গণনা করে। সাধারণত Set উপাদানগুলোকে শুধুমাত্র একবার স্টোর করে, কিন্তু Bag একাধিকবার একই উপাদান রাখতে পারে এবং তাদের গণনা করতে পারে।

import org.apache.commons.collections4.Bag;
import org.apache.commons.collections4.bag.HashBag;

public class BagExample {
    public static void main(String[] args) {
        Bag<String> bag = new HashBag<>();

        bag.add("Apple", 3);  // 3 বার Apple যোগ করা
        bag.add("Banana");
        bag.add("Orange", 2); // 2 বার Orange যোগ করা

        System.out.println("Apple Count: " + bag.getCount("Apple")); // আউটপুট: 3
        System.out.println("Orange Count: " + bag.getCount("Orange")); // আউটপুট: 2
        System.out.println("Total unique items: " + bag.size()); // আউটপুট: 3

        bag.remove("Apple", 1);  // 1 বার Apple মুছে ফেলা
        System.out.println("Apple Count after removal: " + bag.getCount("Apple")); // আউটপুট: 2
    }
}

ধাপ ৩: BidiMap ব্যবহার করা

BidiMap (Bidirectional Map) হলো এমন একটি Map, যা কেবল key-value জোড়ার উপর ভিত্তি করে কাজ করে না, বরং value এর উপর ভিত্তি করে key ও খুঁজে বের করতে পারে। অর্থাৎ, এটি key এবং value উভয়কেই ইউনিক রাখে।

import org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.bidimap.TreeBidiMap;

public class BidiMapExample {
    public static void main(String[] args) {
        BidiMap<String, String> bidiMap = new TreeBidiMap<>();

        bidiMap.put("1", "Apple");
        bidiMap.put("2", "Banana");
        bidiMap.put("3", "Orange");

        System.out.println("Key for value 'Apple': " + bidiMap.getKey("Apple")); // আউটপুট: 1
        System.out.println("Value for key '2': " + bidiMap.get("2")); // আউটপুট: Banana

        bidiMap.removeValue("Orange");
        System.out.println("Key for value 'Orange' after removal: " + bidiMap.getKey("Orange")); // আউটপুট: null
    }
}

ধাপ ৪: MultiMap ব্যবহার করা

MultiMap হলো একটি বিশেষ ধরনের Map, যেখানে একাধিক value একটি key এর সাথে সংযুক্ত থাকতে পারে।

import org.apache.commons.collections4.MultiValuedMap;
import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;

public class MultiMapExample {
    public static void main(String[] args) {
        MultiValuedMap<String, String> multiMap = new ArrayListValuedHashMap<>();

        multiMap.put("Fruit", "Apple");
        multiMap.put("Fruit", "Banana");
        multiMap.put("Fruit", "Orange");
        multiMap.put("Vegetable", "Carrot");

        System.out.println("Fruits: " + multiMap.get("Fruit")); // আউটপুট: [Apple, Banana, Orange]
        System.out.println("Vegetables: " + multiMap.get("Vegetable")); // আউটপুট: [Carrot]

        // সব values প্রিন্ট করা
        multiMap.entries().forEach(System.out::println);
    }
}

ধাপ ৫: Transformer ব্যবহার করা

Transformer ব্যবহার করে আপনি ডেটার উপর বিভিন্ন রূপান্তর (transformation) প্রয়োগ করতে পারেন। এটি মূলত ডেটার উপর অপারেশন প্রয়োগ করে একটি নতুন ফর্মে রূপান্তরিত করে।

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Transformer;

import java.util.Arrays;
import java.util.List;

public class TransformerExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

        Transformer<Integer, Integer> squareTransformer = input -> input * input;

        List<Integer> squaredNumbers = (List<Integer>) CollectionUtils.collect(numbers, squareTransformer);

        System.out.println("Original numbers: " + numbers);
        System.out.println("Squared numbers: " + squaredNumbers);
    }
}

ধাপ ৬: Closure ব্যবহার করা

Closure হলো একটি অপারেশন, যা একটি ডেটার উপর প্রয়োগ করা হয় কিন্তু কোনো মান রিটার্ন করে না। এটি সাধারণত সাইড-ইফেক্ট তৈরি করার জন্য ব্যবহৃত হয়।

import org.apache.commons.collections4.Closure;
import org.apache.commons.collections4.IterableUtils;

import java.util.Arrays;
import java.util.List;

public class ClosureExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("John", "Jane", "Mark");

        Closure<String> printClosure = System.out::println;

        IterableUtils.forEach(names, printClosure);
    }
}

Apache Commons Collections এর সুবিধা

  1. বাড়তি ডেটা স্ট্রাকচার: এটি Java Collections API এর সীমাবদ্ধতা কাটিয়ে ওঠে এবং নতুন ডেটা স্ট্রাকচার সরবরাহ করে, যা প্রজেক্টের জটিল ডেটা ম্যানেজমেন্ট সহজ করে।
  2. Utility ক্লাস: Collections নিয়ে কাজ করা সহজ করে তুলতে বিভিন্ন utility ক্লাস সরবরাহ করা হয়েছে।
  3. কাস্টমাইজেশন: Commons Collections অনেক বেশি ফ্লেক্সিবল এবং ডেভেলপারদের ডেটার উপর বিভিন্ন রকম অপারেশন এবং ফিল্টারিং করার সুযোগ দেয়।
  4. ডেটা ম্যানিপুলেশন সহজ করা: Transformer, Closure, এবং অন্যান্য কার্যকর টুলসের মাধ্যমে ডেটার উপর অপারেশন করা সহজ হয়।

Apache Commons Collections এর অসুবিধা

  1. নতুন API তে ব্যবহার সীমিত: Java 8 এর Stream API এবং Lambda Expressions আসার পর কিছু কিছু ক্ষেত্রে Commons Collections এর ব্যবহার কমে গেছে।
  2. অতিরিক্ত নির্ভরতা: এটি একটি অতিরিক্ত লাইব্রেরি, তাই প্রজেক্টে এটি যোগ করা কিছুটা ওভারহেড তৈরি করতে পারে।
  3. কমন প্রয়োজনীয়তা: কিছু ফিচার Java 8 এবং এর পরবর্তী সংস্করণে যুক্ত হয়ে যাওয়ায় অনেক ক্ষেত্রেই এটি অপ্রয়োজনীয় হয়ে পড়েছে।

Apache Commons Collections শেখার জন্য রিসোর্স

  1. Apache Commons Collections অফিসিয়াল ডকুমেন্টেশন: https://commons.apache.org/proper/commons-collections/
  2. YouTube টিউটোরিয়াল: YouTube এ "Apache Commons Collections Tutorial" নামে বিভিন্ন ভিডিও পাওয়া যায়।
  3. বই: "Java Generics and Collections" বইটি Apache Commons Collections এবং Java Collections সম্পর্কে শেখার জন্য সহায়ক।

কিওয়ার্ড

  • Bag: একটি ডেটা স্ট্রাকচার, যা একাধিকবার একই উপাদান সংরক্ষণ করতে পারে এবং তাদের সংখ্যা গণনা করে।
  • BidiMap: একটি দ্বিমুখী Map, যা key-value জোড়া এবং value-key উভয়ভাবেই অ্যাক্সেস করা যায়।
  • MultiMap: এমন একটি Map, যেখানে একাধিক value একটি key এর সাথে সংযুক্ত থাকতে পারে।
  • Transformer: একটি ডেটার উপর অপারেশন প্রয়োগ করে সেটিকে নতুন ফর্মে রূপান্তরিত করার ক্লাস।
  • Closure: একটি অপারেশন, যা একটি ডেটার উপর প্রয়োগ করা হয় কিন্তু কোনো মান রিটার্ন করে না।

উপসংহার

Apache Commons Collections হলো একটি শক্তিশালী এবং ফ্লেক্সিবল লাইব্রেরি, যা Java Collections API এর সীমাবদ্ধতা কাটিয়ে উঠে অতিরিক্ত ডেটা স্ট্রাকচার, utility ক্লাস, এবং অ্যালগরিদম প্রদান করে। এটি Bag, BidiMap, MultiMap এবং আরও অনেক নতুন ডেটা স্ট্রাকচার সরবরাহ করে, যা জাভা ডেভেলপারদের ডেটা ম্যানেজমেন্ট এবং প্রসেসিং সহজ করে তোলে। যদিও Java 8 এবং এর পরবর্তী সংস্করণে নতুন ফিচার যোগ হওয়ার কারণে এর ব্যবহার কিছুটা কমে গেছে, তবে এখনও বড় বড় প্রজেক্টে এটি একটি কার্যকর টুল হিসেবে ব্যবহৃত হয়।

টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion